package net.csdn.business.common.domain.vo;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import net.csdn.business.common.constant.CommonConstants;
import net.csdn.business.common.enums.ActionTypeEnum;

import java.io.Serializable;
import java.util.Date;

/**
 * @Desc: 操作日志entity
 * @ClassName: BusinessLog
 * @Author: yourleige@163.com
 * @Date: 2022/8/2 18:19
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class BussinessLogVo implements Serializable {

    @JsonProperty("id")
    private String objectId;
    /**
     * 请求方法
     */
    private String method;

    /**
     * 请求参数
     */
    private String param;
    /**
     * 请求路径
     */
    private String path;
    /**
     * 用户ID
     */
    private String userId;
    /**
     * 用户名
     */
    private String userName;
    /**
     * 来源ip
     */
    private String requestIp;
    /**
     * 相关项id
     */
    private String relatedId;

    /**
     * 操作动作
     */
    private Integer actionValue;

    /**
     * 证件类型
     **/
    @TableField("action")
    private ActionTypeEnum action;

    /**
     * 操作结果
     */
    private String result;
    /**
     * 操作时间
     */
    @JsonFormat(pattern = CommonConstants.DEFAULT_PATTERN, timezone = CommonConstants.DEFAULT_TIMEZONE)
    private Date startTime;
    /**
     * 耗时：毫秒
     */
    private Long totalTime;

    /**
     * 操作日志的traceId
     */
    private String traceId;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = CommonConstants.DEFAULT_PATTERN, timezone = CommonConstants.DEFAULT_TIMEZONE)
    protected Date createdDate;

}